In today's companies, enterprise applications provide functionality for executing business processes and in a complex global economy, applications consequently have become extremely complex to meet business requirements. The effort to acquire skills to master applications, coupled with changing applications built upon ever growing infrastructure, systematic measurement is a challenge for both user performance on an application and measurement of the application's performance for the user.
In general, User monitoring products can be divided into several categories: Performance Monitoring Capture, HTTP monitoring, HTTP Capture, Host Application Run Time Source Code Insertions, and Host Application Development Source Code Insertions or Compilation. The following products are representative of their respective categories.
There are products that monitor and capture performance on the end user's computer. Including a product sold by Reflectent Software, Westford, Mass. under the name EdgeSight views quantifies the performance and availability of applications and IT services from the end-user perspective allowing insight into how specific applications are performing and being utilized, both in real-time and historically. When crashes, errors, and hangs occur information and forensic data required is immediately available to pinpoint the root cause of the issue. It does not generate monitoring data from the GUI presentation layer of a Host Application and does not monitor any activity in between transactions. It cannot detect subsets of GUI objects in generic, categorized sets. It cannot support multi instances of Host Applications at the GUI level. It has no ability to perform Method Monitoring of function calls. It does not support distributed local and remote state machines for efficient and rapid processing.
Conventional products are available to monitor HTTP traffic on a client computer. For example, End User Monitoring, available from Mercury Corporation, Mountain View, Calif. proactively monitors web site and application availability in real time, from the end-user perspective. It proactively emulates end-user business processes against applications. It does not generate monitoring data from the GUI presentation layer of a Host Application and does not monitor any activity in between transactions. It cannot detect subsets of GUI objects in generic, categorized sets and furthermore, offers no ability to do Method Monitoring. It cannot support multi instances of Host Applications at the GUI level. It does not support distributed local and remote state machines for efficient and rapid processing.
A product sold by Candle Corp. (IBM/Tivoli) under the trademark ETEWatch measures transaction-level end-to-end response time the wait time a user experiences as an application loads its screens or performs an action. It does not generate monitoring data from the GUI presentation layer of a Host Application and does not monitor any activity in between transactions. It cannot detect subsets of GUI objects in generic, categorized sets. It cannot support multi instances of Host Applications at the GUI level. It has no ability to perform Method Monitoring of function calls. It does not support distributed local and remote state machines for efficient and rapid processing.
A product sold by Compuware, Detroit, Mich., under the trademark Vantage 9.7 correlates application performance data and events to factors important to the business, such as applications, transactions, roles and locations. Additional views integrate end-user response time metrics with extended troubleshooting capabilities. This allows IT organizations to resolve performance problems and manage their applications and infrastructure proactively. It does not generate monitoring data from the GUI presentation layer of a Host Application and does not monitor any activity in between transactions. It cannot detect subsets of GUI objects in generic, categorized sets. It cannot support multi instances of Host Applications at the GUI level. It has no ability to perform Method Monitoring of function calls. It does not support distributed local and remote state machines for efficient and rapid processing.
There are products that capture HTTP traffic on a server. A product sold by TeaLeaf Technology, Inc. of San Francisco, Calif. under the name RealiTea passively captures what every customer does and sees in real time, enabling immediate detection, analysis, and response to issues. It validates each customer's unique actions against expected outcomes across a multi-step business process. It does not generate monitoring data from the GUI presentation layer of a Host Application and does not monitor any activity in between transactions. It cannot detect subsets of GUI objects in generic, categorized sets and furthermore, offers no ability to do Method Monitoring. It cannot support multi instances of Host Applications at the GUI level. It cannot be implemented transparently and requires changes to application source code or requires some output from the compilation process. It does not support distributed local and remote state machines for efficient and rapid processing.
There are products that do code insertions into the Host Application at run time. A product sold by Veritas under the trademark i3 proactively monitoring, analyzing, and tuning SAP, Siebel, etc. applications. It provides a complete view of application performance by capturing, measuring, and correlating performance metrics from each supporting tier of applications infrastructure (web server, application server, database, and storage). While this product does see GUI events it is restricted to web applications and has no concept of detection of generic GUI object sets. Additionally, it requires the insertion of source code at the application's site which is a very intrusive process and is not a transparent implementation process. The Veritas product is incapable of detecting anything directly from the operating system level. It cannot detect events or retrieve properties directly from component methods (i.e. functions) methods or directly interface with a Win32 application. Furthermore, with the Veritas product, concurrent measurements of multiple different application types such as web and Win32 are not possible. Still further, there is a lack of persistence across pages with no concept of localized state machines for execution of real time alerts. It does not support distributed local and remote state machines for efficient and rapid processing.
There are products that use files resulting from compilation of source code at development time. A product sold by Identify Software, New York, N.Y. under the name AppSight Black Box deployed on servers and/or clients, records application execution at multiple, synchronized levels, based on a dynamic, user-defined recording profile. Black Box requires no changes to source code or executables. Client-side, it has Video-style capture of user actions and screen events. This product does not do transaction response measurement. Furthermore, while this product does a form of method monitoring it relies on files generated during compilation of development source code and is not strictly support a transparent implementation process. The current invention described in this application achieves method monitoring without requiring compiled source files, and furthermore, also monitors function returns as well. It does not generate monitoring data from the GUI presentation layer of a Host Application at the GUI object level from GUI Object models. It cannot detect subsets of GUI objects in generic, categorized sets. It cannot support Multi-Instances at the GUI level of Host Applications. It cannot be implemented transparently and requires changes to application source code or requires some output from the compilation process. It does not support distributed local and remote state machines for efficient and rapid processing.
U.S. Pat. No. 6,108,700 entitled “Application End-To-End Response Time Measurement and Decomposition” relates to end-to-end measurements generally across all tiers and is a framework for integrating a spectrum of data types. U.S. Pat. No. 6,078,956 entitled “World Wide Web End User Response Time Monitor” discloses monitoring requests at the HTTP level where a response time associated with a first HTTP request is calculated, then passed to a server, and logged for a later use. U.S. Pat. No. 5,991,705 entitled “End-To-End Response Time Measurement for Computer Programs Using Starting and Ending Queues” and its continuation U.S. Pat. No. 6,202,036 each relate to a system for measuring end-to-end response time for a transaction performed by a computer. U.S. Pat. No. 6,189,047 entitled “Apparatus and Method for Monitoring Event Queue Operations With Pluggable Event Queues” discloses the use of customized message queues to reflect system message queues used by an application as a result of user GUI interaction. Each of the aforementioned U.S. patents is hereby incorporated by reference in their entirety.
Particularly, the prior art patents U.S. Pat. Nos. 5,991,705—6,108,700—and 6,078,956 fail to disclose a method or system that can generate monitoring data from the GUI presentation layer of a Host Application. None of the techniques described in the prior art support distributed (localized and remote) state machines for rapid event processing, nor do they implement any modeling or tree structures of GUI object sets beyond simple queues, nor do they support the handling of GUI Multi-Instances. None of the techniques in the prior art disclose the use of subsets of GUI objects in generic, categorized sets, and furthermore, offer no ability to do Method Monitoring. The prior art also does not provide a GUI Context for all other forms of non-GUI data.
The present application is directed to similar subject matter as applicant's issued patent (U.S. Pat. No. 6,340,977, titled “System and Method For Dynamic Assistance In Software Applications Using Behavior and Host Application Models”), and to applicant's pending continuation application (U.S. Ser. No. 09/989,716, filed Nov. 20, 2001 ). Applicant also has commercial implementations sold by applicant under the brandnames “User Performance Measurement 3.0 (Knoa Operation Response Time Monitor, Knoa User & Application Errors Monitor, Knoa Application Usage Monitor),” “Knoa Business Process Meaurement 3.0 (Knoa Business Process Monitor),” and “Knoa Compliance Measurement 2.0 (Knoa User Compliance Monitor).” The present application addresses and improves upon the applicant's prior work.
Missing from the art is a GUI detection and monitoring system that is capable of automated detection of multi-instances of a host application, and detection of multi-instances of subsets of GUI structures. Further missing from the art is a system capable of generic detection of categories of GUI objects within multi-instances of host applications, or subsets of the host applications. The present invention provides these and other needs.